package ltd.dujiabao.dex.core;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * @author DuJiabao
 * @date 2024/3/18 19:13
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface DelayJob {

    String jobName();

    long delayTime();

    TimeUnit timeUnit() default TimeUnit.SECONDS;

    ExecutorType executorType();

    Class<?> implementation();
}
